Filename | (eval 1105)[/usr/share/perl5/Sub/Quote.pm:5] |
Statements | Executed 0 statements in 0s |
Eval Invoked At | /usr/share/perl5/Sub/Quote.pm line 5 |
Sibling evals | 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 |
Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
---|---|---|---|---|---|
2 | 2 | 2 | 40µs | 1.55ms | new | DBIx::Class::Storage::BlockRunner::
1 | 1 | 1 | 19µs | 38µs | BEGIN@4.2965 | Sub::Quote::
1 | 1 | 1 | 8µs | 8µs | BEGIN@10.2966 | Method::Generate::Constructor::
1 | 1 | 1 | 7µs | 7µs | BEGIN@74 | DBIx::Class::Storage::BlockRunner::
Line | State ments |
Time on line |
Calls | Time in subs |
Code |
---|---|---|---|---|---|
1 | { | ||||
2 | my $_QUOTED = ${$_[1]->{"\$_QUOTED"}}; | ||||
3 | my $_UNQUOTED = ${$_[1]->{"\$_UNQUOTED"}}; | ||||
4 | 2 | 56µs | # spent 38µs (19+19) within Sub::Quote::BEGIN@4.2965 which was called:
# once (19µs+19µs) by Sub::Quote::_clean_eval at line 4 # spent 38µs making 1 call to Sub::Quote::BEGIN@4.2965
# spent 19µs making 1 call to warnings::unimport | ||
5 | # spent 1.55ms (40µs+1.51) within DBIx::Class::Storage::BlockRunner::new which was called 2 times, avg 775µs/call:
# once (11µs+1.51ms) by DBIx::Class::Storage::DBI::dbh_do at line 855 of DBIx/Class/Storage/DBI.pm
# once (29µs+1µs) by DBIx::Class::Storage::DBI::dbh_do at line 56 of Sub/Defer.pm | ||||
6 | $_QUOTED if 0; | ||||
7 | $_UNQUOTED if 0; | ||||
8 | # BEGIN quote_sub PRELUDE | ||||
9 | package Method::Generate::Constructor; | ||||
10 | # spent 8µs within Method::Generate::Constructor::BEGIN@10.2966 which was called:
# once (8µs+0s) by Sub::Quote::_clean_eval at line 15 | ||||
11 | $^H = "2018"; | ||||
12 | ${^WARNING_BITS} = "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"; | ||||
13 | %^H = ( | ||||
14 | ); | ||||
15 | 1 | 8µs | } # spent 8µs making 1 call to Method::Generate::Constructor::BEGIN@10.2966 | ||
16 | # END quote_sub PRELUDE | ||||
17 | my $class = shift; | ||||
18 | $class = ref($class) if ref($class); | ||||
19 | if ($class ne "DBIx::Class::Storage::BlockRunner") { | ||||
20 | if ($Moo::MAKERS{$class}) { | ||||
21 | if ($Moo::MAKERS{$class}{constructor}) { | ||||
22 | return $class->DBIx::Class::Storage::BlockRunner::SUPER::new(@_); | ||||
23 | } | ||||
24 | Moo->_constructor_maker_for($class); | ||||
25 | return $class->new(@_); | ||||
26 | } elsif ($INC{"Moose.pm"} and my $meta = Class::MOP::get_metaclass_by_name($class)) { | ||||
27 | return $meta->new_object( | ||||
28 | $class->can("BUILDARGS") ? $class->BUILDARGS(@_) | ||||
29 | : $class->Moo::Object::BUILDARGS(@_) | ||||
30 | ); | ||||
31 | } | ||||
32 | } | ||||
33 | my $args; | ||||
34 | if ( scalar @_ == 1 ) { | ||||
35 | unless ( defined $_[0] && ref $_[0] eq 'HASH' ) { | ||||
36 | die "Single parameters to new() must be a HASH ref" | ||||
37 | ." data => ". $_[0] ."\n"; | ||||
38 | } | ||||
39 | $args = { %{ $_[0] } }; | ||||
40 | } | ||||
41 | elsif ( @_ % 2 ) { | ||||
42 | die "The new() method for $class expects a hash reference or a" | ||||
43 | . " key/value list. You passed an odd number of arguments\n"; | ||||
44 | } | ||||
45 | else { | ||||
46 | $args = {@_}; | ||||
47 | } | ||||
48 | if (my @missing = grep !exists $args->{$_}, qw(retry_handler storage wrap_txn)) { | ||||
49 | die "Missing required arguments: ".join(', ', sort @missing); | ||||
50 | } | ||||
51 | my $new = bless({}, $class);; | ||||
52 | $new->{"max_attempts"} = ( | ||||
53 | exists $args->{"max_attempts"} | ||||
54 | ? $args->{"max_attempts"} | ||||
55 | : "20" | ||||
56 | ); | ||||
57 | if (exists $args->{"retry_debug"}) { | ||||
58 | $new->{"retry_debug"} = $args->{"retry_debug"}; | ||||
59 | } | ||||
60 | if (exists $args->{"retry_handler"}) { | ||||
61 | do { | ||||
62 | local $Method::Generate::Accessor::CurrentAttribute = { | ||||
63 | init_arg => "retry_handler", | ||||
64 | name => "retry_handler", | ||||
65 | step => "isa check", | ||||
66 | }; | ||||
67 | my $_error; | ||||
68 | { | ||||
69 | my $_old_error = $@; | ||||
70 | if (!eval { | ||||
71 | $@ = $_old_error; | ||||
72 | do { local @_ = ($args->{"retry_handler"}); # BEGIN quote_sub PRELUDE | ||||
73 | package DBIx::Class::Storage::BlockRunner; | ||||
74 | # spent 7µs within DBIx::Class::Storage::BlockRunner::BEGIN@74 which was called:
# once (7µs+0s) by Sub::Quote::_clean_eval at line 79 | ||||
75 | $^H = "133090"; | ||||
76 | ${^WARNING_BITS} = "UUUUUUUUUUUUUUUUU"; | ||||
77 | %^H = ( | ||||
78 | ); | ||||
79 | 1 | 7µs | } # spent 7µs making 1 call to DBIx::Class::Storage::BlockRunner::BEGIN@74 | ||
80 | # END quote_sub PRELUDE | ||||
81 | |||||
82 | 1 | 1µs | (Scalar::Util::reftype($_[0])||'') eq 'CODE' # spent 1µs making 1 call to Scalar::Util::reftype | ||
83 | or DBIx::Class::Exception->throw('retry_handler must be a CODE reference') | ||||
84 | }; | ||||
85 | 1; | ||||
86 | }) { | ||||
87 | $_error = $@; | ||||
88 | if (!ref $_error) { | ||||
89 | $_error = "isa check for \"retry_handler\" failed: ".$_error; | ||||
90 | } | ||||
91 | } | ||||
92 | $@ = $_old_error; | ||||
93 | } | ||||
94 | die $_error if $_error; | ||||
95 | } | ||||
96 | ; | ||||
97 | $new->{"retry_handler"} = $args->{"retry_handler"}; | ||||
98 | } | ||||
99 | if (exists $args->{"storage"}) { | ||||
100 | $new->{"storage"} = $args->{"storage"}; | ||||
101 | } | ||||
102 | if (exists $args->{"wrap_txn"}) { | ||||
103 | $new->{"wrap_txn"} = $args->{"wrap_txn"}; | ||||
104 | } | ||||
105 | return $new; | ||||
106 | } | ||||
107 | $$_UNQUOTED = \&DBIx::Class::Storage::BlockRunner::new | ||||
108 | } | ||||
109 | 1; | ||||
110 | |||||
111 | ; |